主题
键鼠同步模块总览 - Overview
本分类做什么
在 已登录授权 前提下,对单个或多个 OLA 实例做 键鼠事件采集、监听、录制、回放、主从同步。权限特性名为 InputSync(OLA / OLAPlus / OLAUltra)。
与 鼠标、键盘 配合:采集的是这些 API 的调用出口(以及 DX 前台真人输入),不是替代它们。
一、能力一览
| 能力 | 接口 | 说明 |
|---|---|---|
| 采集开关 | EnableInputSync | 开启后 API / FG 事件进总线 |
| 监听 | SetInputMonitor | 本地回调;类型见 InputMonitorCallback |
| 录制 | InputRecord | START→操作→STOP 自动落盘 |
| 查路径 | InputRecordGetPath | 返回绝对路径,须 FreeStringPtr |
| 主从 | InputSyncLink | 主实例事件异步投到从实例 |
| 回放 | InputPlayback | LOAD→START→STOP→FREE;可 LOOP |
二、推荐流程
录制
text
EnableInputSync(ola, 1) // 可选;InputRecord(START) 也会自动开启
InputRecord(ola, START, "") // 或相对 WorkPath 的路径
… KeyDown / MoveTo / MoveR …
InputRecord(ola, STOP, "") // 自动落盘
path = InputRecordGetPath(ola)回放
text
h = InputPlayback(ola, 0, LOAD, path, 0, 0, 0)
InputPlayback(ola, h, START, "", 1.0, 0, LOOP?)
… 可选 PAUSE / SEEK / STOP …
InputPlayback(ola, h, FREE, "", 0, 0, 0)主从同步
text
EnableInputSync(master, 1)
InputSyncLink(master, slave, 1)
… 在 master 上操作键鼠 …
InputSyncLink(master, 0, 0) // 解绑全部三、路径与权限
- 字符串 path 请传
"",不要传NULL。 - 相对路径相对
ConfigModel::WorkPath(FileHelper::ToAbsolutePath)。 - 本模块接口均需
InputSync权限;无权限返回0(字符串接口返回空串),GetLastError为权限拒绝。
四、移动事件规则
| 来源 | 录制 flags | 回放 / 从端 |
|---|---|---|
MoveTo(轨迹) | TRAJECTORY | MoveTo |
MoveToWithoutSimulator | 0 | MoveToWithoutSimulator |
MoveR | RELATIVE(可兼 TRAJECTORY) | MoveR |
DX 前台真人 FG_REAL | 0 | MoveToWithoutSimulator |
SendMouseAction(WM_MOUSEMOVE) 不单独记 move(避免轨迹中间点重复);按键/滚轮由 SendMouseAction 记一次。
五、注意
- DX 前台回传须 关闭前台锁定(LockInput /
InputLock)。 - Monitor / 回放可能在非调用线程回调,勿阻塞、勿重入同实例同步 API。
- 后台注入带标记,hook 不上报,避免与 HOST_API 重复。
